package main

//
//import (
//	"fmt"
//	"time"
//
//	"game_server/eventbus"
//	"game_server/gamesession"
//	"game_server/log"
//	"game_server/config"
//)
//
//func main() {
//	// 初始化日志系统
//	log.Init(&log.Config{
//		Level:   "debug",
//		Output:  "both",
//		File:    "logs/demo.log",
//		MaxSize: 10,
//		MaxAge:  7,
//	})
//
//	// 创建事件总线实例
//	eb := eventbus.NewMemoryEventBus()
//
//	// 订阅会话事件
//	eb.Subscribe("session.started", func(e eventbus.Event) {
//		data := e.Data().(map[string]interface{})
//		log.Infof("SESSION_STARTED: id=%s, time=%v", data["session_id"], data["start_time"])
//	})
//
//	eb.Subscribe("session.paused", func(e eventbus.Event) {
//		data := e.Data().(map[string]interface{})
//		log.Infof("SESSION_PAUSED: id=%s, time=%v", data["session_id"], data["pause_time"])
//	})
//
//	eb.Subscribe("session.resumed", func(e eventbus.Event) {
//		data := e.Data().(map[string]interface{})
//		log.Infof("SESSION_RESUMED: id=%s, duration=%v", data["session_id"], data["pause_duration"])
//	})
//
//	eb.Subscribe("session.ended", func(e eventbus.Event) {
//		data := e.Data().(map[string]interface{})
//		log.Infof("SESSION_ENDED: id=%s, duration=%v", data["session_id"], data["total_duration"])
//	})
//
//	// 创建会话配置
//	sessionConfig := gamesession.SessionConfig{
//		MaxPlayers:    4,
//		MinPlayers:    2,
//		Timeout:       30 * time.Minute,
//		AutoStart:     true,
//		Reconnectable: true,
//	}
//
//	// 创建游戏会话
//	session := gamesession.NewBaseSession("demo-session-001", sessionConfig)
//	session.SetEventBus(eb) // 设置事件总线
//
//	// 添加玩家
//	players := []string{"player-1", "player-2", "player-3"}
//	for _, playerID := range players {
//		if err := session.AddPlayer(playerID); err != nil {
//			log.Errorf("Failed to add player %s: %v", playerID, err)
//		} else {
//			log.Infof("Player %s added successfully", playerID)
//		}
//	}
//
//	// 执行会话生命周期
//	if err := session.Start(); err != nil {
//		log.Errorf("Failed to start session: %v", err)
//	}
//
//	time.Sleep(1 * time.Second) // 模拟游戏进行
//
//	if err := session.Pause(); err != nil {
//		log.Errorf("Failed to pause session: %v", err)
//	}
//
//	time.Sleep(500 * time.Millisecond) // 模拟暂停
//
//	if err := session.Resume(); err != nil {
//		log.Errorf("Failed to resume session: %v", err)
//	}
//
//	time.Sleep(1 * time.Second)
//
//	if err := session.End(); err != nil {
//		log.Errorf("Failed to end session: %v", err)
//	}
//
//	// 等待事件处理完成
//	time.Sleep(100 * time.Millisecond)
//	fmt.Println("Demo completed. Check logs for event details.")
////}
